package com.example.bourse.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 商品表
 * @TableName product
 */
@TableName(value ="product")
@Data
public class Product implements Serializable {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 卖家ID（关联user.id）
     */
    @TableField(value = "seller_id")
    private Long sellerId;

    /**
     * 商品标题
     */
    @TableField(value = "title")
    private String title;

    /**
     * 商品描述
     */
    @TableField(value = "description")
    private String description;

    /**
     * key内容（加密存储）
     */
    @TableField(value = "key_content")
    private String keyContent;

    /**
     * 价格
     */
    @TableField(value = "price")
    private Long price;

    /**
     * 展示价格
     */
    @TableField(value = "display_price")
    private Long displayPrice;

    /**
     * 分类ID（关联category.id）
     */
    @TableField(value = "category_id")
    private Long categoryId;

    /**
     * 商品主图片URL
     */
    @TableField(value = "main_image")
    private String mainImage;

    /**
     * 商品详情图片集合（JSON格式）
     */
    @TableField(value = "detail_images")
    private Object detailImages;

    /**
     * 商品标签
     */
    @TableField(value = "tags")
    private String tags;

    /**
     * 商品状态（0:下架，1:上架）
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 逻辑删除（0:未删除，1:已删除）
     */
    @TableField(value = "del_flag")
    private Integer delFlag;

    /**
     * 商品创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 商品过期时间
     */
    @TableField(value = "expire_time")
    private Date expireTime;

    /**
     * 创建时间
     */
    @TableField(value = "create_date")
    private Date createDate;

    /**
     * 更新时间
     */
    @TableField(value = "update_date")
    private Date updateDate;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}